var module = argument0;
var height = array_height_2d(module.tiles);
var width = array_length_2d(module.tiles, 0);
var borders = instance_create(0, 0, obj_Module);

for (var yyy = 0; yyy < height - 1; yyy++)
{
    for (var xxx = 0; xxx < width - 1; xxx++)
    {
        //spr wall right concave corner
        if( !module.tiles[yyy, xxx] &&
            !module.tiles[yyy, xxx + 1] &&
            !module.tiles[yyy + 1, xxx + 1] && 
            module.tiles[yyy + 1, xxx])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy, tile, borders);
            tile.sprite_index = spr_Wall_RCC;
        }
        
        //spr wall left concave corner
        if( !module.tiles[yyy, xxx] &&
            !module.tiles[yyy + 1, xxx] &&
            !module.tiles[yyy, xxx + 1] &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx, yyy, tile, borders);
            tile.sprite_index = spr_Wall_LCC;
        }
        
        //spr ceiling left concave corner
        if( !module.tiles[yyy, xxx] &&
            !module.tiles[yyy + 1, xxx] &&
            !module.tiles[yyy + 1, xxx + 1] &&
            module.tiles[yyy, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx, yyy + 1, tile, borders);
            tile.sprite_index = spr_Ceiling_LCC;
        }  
        
        //spr ceiling right concave corner
        if( !module.tiles[yyy, xxx + 1] &&
            !module.tiles[yyy + 1, xxx] &&
            !module.tiles[yyy + 1, xxx + 1] &&
            module.tiles[yyy, xxx])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy + 1, tile, borders);
            tile.sprite_index = spr_Ceiling_RCC;
        }
    
        //spr ceiling left convex corner
        if( !module.tiles[yyy + 1, xxx + 1] &&
            module.tiles[yyy, xxx] &&
            module.tiles[yyy, xxx + 1] &&
            module.tiles[yyy + 1, xxx])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy + 1, tile, borders);
            tile.sprite_index = spr_Ceiling_LCV;
        }
        
        //spr ceiling right convex corner
        if( !module.tiles[yyy + 1, xxx] &&
            module.tiles[yyy, xxx] &&
            module.tiles[yyy, xxx + 1] &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx, yyy + 1, tile, borders);
            tile.sprite_index = spr_Ceiling_RCV;
        }
        
        //spr wall left convex corner
        if( !module.tiles[yyy, xxx + 1] &&
            module.tiles[yyy, xxx] &&
            module.tiles[yyy + 1, xxx] &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy, tile, borders);
            tile.sprite_index = spr_Wall_LCV;
        }
        
        //spr wall right convex corner
        if( !module.tiles[yyy, xxx] && 
            module.tiles[yyy + 1, xxx] &&
            module.tiles[yyy, xxx + 1] &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx, yyy, tile, borders);
            tile.sprite_index = spr_Wall_RCV;
        }
        
        //spr wall right        
        if( !module.tiles[yyy, xxx + 1] &&
            !module.tiles[yyy + 1, xxx + 1] &&
            (yyy + 2 >= height || !module.tiles[yyy + 2, xxx + 1]) &&
            module.tiles[yyy + 1, xxx])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy + 1, tile, borders);
            tile.sprite_index = spr_Wall_Right;
        }
        
        //spr wall top
        if( !module.tiles[yyy, xxx] &&
            !module.tiles[yyy, xxx + 1] &&
            (xxx + 2 >= width || !module.tiles[yyy, xxx + 2]) &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy, tile, borders);
            tile.sprite_index = spr_Wall_Top;
        }
        
        //spr wall left
        if( !module.tiles[yyy, xxx] &&
            !module.tiles[yyy + 1, xxx] &&
            (yyy + 2 >= height || !module.tiles[yyy + 2, xxx]) &&
            module.tiles[yyy + 1, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx, yyy + 1, tile, borders);
            tile.sprite_index = spr_Wall_Left;
        }
        
        //spr wall bottom
        if( !module.tiles[yyy + 1, xxx] &&
            !module.tiles[yyy + 1, xxx + 1] &&
            (xxx + 2 >= width || !module.tiles[yyy + 1, xxx + 2]) &&
            module.tiles[yyy, xxx + 1])
        {
            var tile = instance_create(0, 0, obj_Wall);
            setTile(xxx + 1, yyy + 1, tile, borders);
            tile.sprite_index = spr_Wall_Bottom;
        }
              
    }
}
layerModule(module, borders);